/**
 * @Title: 二进制中1的个数
 * @Author 贾金博
 * @Package PACKAGE_NAME
 * @Date 2024/3/2 21:11
 * @description:
 */
public class 二进制中1的个数 {
    public int NumberOf1(int n) {
        boolean flag = false;
        if(n < 0) {
            flag = true;
            n = -n;
        }
        int t = 0;
        int ret = 0;

        while(n != 0) {
            if(n % 2 == 1) {
                ret ++;
            }
            n >>= 1;
            t++; // 这个代表的是位数
        }

        return flag == false ? ret : 32 - t + ret;
    }
}
